.nova-color-picker-hsv {
  position: relative;
  width: 210px;
  height: 210px;
  background-clip: content-box;
  padding: 5px;
  margin: 5px;
  will-change: background-color;
}

.nova-color-picker-hsv-inner {
  position: relative;
  width: 200px;
  height: 200px;
  border-radius: var(--nova-radius-tiny);
  overflow: hidden;
}

.nova-color-picker-hue-saturation {
  width: 200px;
  height: 200px;
  border-radius: var(--nova-radius-tiny);
}

.nova-color-picker-value {
  position: absolute;
  background-image: linear-gradient(
    180deg,
    hsla(0, 0%, 0%, 0),
    hsla(0, 0%, 0%, 1)
  );
  width: 200px;
  height: 200px;
  top: 0;
  left: 0;
}

.nova-color-picker-cursor {
  position: absolute;
  top: 5px;
  left: 5px;
  pointer-events: none;
  width: 12px;
  height: 12px;
  border: 1px solid var(--nova-color-white);
  border-radius: var(--nova-radius-tiny);
  margin-top: -6px;
  margin-left: -6px;
  box-shadow: var(--nova-shadow-cursor);
  transform: translate(100px, 100px);
  will-change: transform;
  transition: width var(--nova-duration-short) linear,
    height var(--nova-duration-short) linear,
    margin var(--nova-duration-short) linear;
}

.nova-color-picker-cursor-holding {
  width: 40px;
  height: 40px;
  margin-top: -20px;
  margin-left: -20px;
}

.nova-color-picker-slides {
  display: flex;
  justify-content: space-around;
  width: 80px;
}

.nova-color-picker-hue-slide {
}

.nova-color-picker-alpha-slide {
}

.nova-color-picker-hue-slide,
.nova-color-picker-alpha-slide {
  position: relative;
  padding: 10px 5px;
  width: 30px;
  height: 220px;
}

.nova-color-picker-hue-bar {
  height: 200px;
  background-image: linear-gradient(
    180deg,
    hsl(0, 100%, 50%),
    hsl(60, 100%, 50%),
    hsl(120, 100%, 50%),
    hsl(180, 100%, 50%),
    hsl(240, 100%, 50%),
    hsl(300, 100%, 50%),
    hsl(360, 100%, 50%)
  );
}

.nova-color-picker-alpha-slide {
  background-clip: content-box;
}

.nova-color-picker-hue-inner,
.nova-color-picker-alpha-inner {
  background-image: var(--nova-bg-checkerboard);
  background-color: var(--nova-color-bg);
  height: 200px;
  border-radius: var(--nova-radius-tiny);
  overflow: hidden;
}

.nova-color-picker-alpha-bar {
  height: 200px;
  will-change: background-image;
}

.nova-color-picker-hue-thumb,
.nova-color-picker-alpha-thumb {
  position: absolute;
  top: 10px;
  left: 5px;
  background-clip: content-box;
  pointer-events: none;
  width: 18px;
  height: 8px;
  margin-top: -4px;
  margin-left: 1px;
  border: 1px solid var(--nova-color-black-shadow);
  background-color: var(--nova-color-white);
  will-change: transform;
  border-radius: var(--nova-radius-tiny);
}
